home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Utilities / Winter Shell 1.0d2 / Source / Libraries / #Headers / ReleaseLib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-11  |  2.3 KB  |  68 lines  |  [TEXT/KAHL]

  1. /* 93/12/28 aih split out of CommonLib.h */
  2.  
  3. /* Product release levels. The release level determines how much debug code
  4.     is compiled and what compiler optimizations are enabled. */
  5. #define RELEASE_DEV            (1)    /* all of debug code, no optimization */
  6. #define RELEASE_ALPHA        (2)    /* less debug code, some optimization */
  7. #define RELEASE_BETA            (3)    /* even less debug code, more optimization */
  8. #define RELEASE_FINAL        (4)    /* no debug code, full optimization */
  9.  
  10. /* profiling is disabled by default */
  11. #ifndef PROFILE
  12.     #if defined(THINK_C) && __option(profile)
  13.         #define PROFILE (1)
  14.     #else
  15.         #define PROFILE (0)
  16.     #endif
  17. #endif
  18.  
  19. /* need far data when profiling */
  20. #if PROFILE
  21.     #if defined(THINK_C) && ! __option(far_data)
  22.         #error enable Far Data option in the "Set Project Type..." dialog
  23.     #endif
  24. #endif
  25.  
  26. /* default to development version */
  27. #ifndef RELEASE_LEVEL
  28.     #define RELEASE_LEVEL    RELEASE_DEV
  29. #endif
  30.  
  31. /* disable assertions for beta release or later */
  32. #if RELEASE_LEVEL >= RELEASE_BETA
  33.     #define ASSERT_REQUIRE    (0)
  34.     #define ASSERT_CHECK        (0)
  35.     #define ASSERT_ENSURE    (0)
  36. #endif
  37.  
  38. /* disable all debug code for final release */
  39. #if RELEASE_LEVEL >= RELEASE_FINAL && ! defined(NDEBUG)
  40.     #define NDEBUG                (1)
  41. #endif
  42.  
  43. #ifdef THINK_C
  44.     /* set compiler options */
  45.     /* we need stack frames so segment unloading will work */
  46.     #pragma options(force_frame)
  47.     #if RELEASE_LEVEL == RELEASE_DEV
  48.         #pragma options(long_macsbug_names, ! global_optimizer)
  49.         #pragma options(! defer_adjust, ! redundant_loads)
  50.     #elif RELEASE_LEVEL == RELEASE_ALPHA
  51.         #pragma options(long_macsbug_names, ! global_optimizer)
  52.         #pragma options(defer_adjust, redundant_loads)
  53.         #pragma options(honor_register, assign_registers)
  54.     #elif RELEASE_LEVEL == RELEASE_BETA
  55.         #pragma options(long_macsbug_names)
  56.         #pragma options(global_optimizer)
  57.         #pragma options(gopt_induction, gopt_cse, gopt_loop, gopt_coloring)
  58.         #pragma options(defer_adjust, redundant_loads)
  59.         #pragma options(honor_register, assign_registers)
  60.     #else /* RELEASE_FINAL */
  61.         #pragma options(! macsbug_names, ! long_macsbug_names)
  62.         #pragma options(global_optimizer)
  63.         #pragma options(gopt_induction, gopt_cse, gopt_loop, gopt_coloring)
  64.         #pragma options(defer_adjust, redundant_loads)
  65.         #pragma options(honor_register, assign_registers)
  66.     #endif /* RELEASE_LEVEL */
  67. #endif /* THINK_C */
  68.